package demo1;

/*
5、对象流的应用
   验证ObjectInputStream、ObjectOutputStream类的使用，实现把对象数据存入到一个文件，再读取该文件中的对象数据在控制台中输出
（1）	对象自定
（2）	存储的文件自定
（3）	对象流和其他数据流的根本区别是什么？读写的对象有何要求？

 */

import javax.jws.soap.SOAPBinding;
import java.io.*;
import java.util.ArrayList;

class User implements Serializable{
    private String name;
    private int age;
    private String sex;

    public User(String name, int age, String sex) {
        this.name = name;
        this.age = age;
        this.sex = sex;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", sex='" + sex + '\'' +
                '}';
    }
}
public class LX7 {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        User user1=new User("张三",12,"男");
        User user2=new User("李四",13,"女");
        User user3=new User("王五",14,"男");

        ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("D:\\test.txt"));

        oos.writeObject(user1);
        oos.writeObject(user2);
        oos.writeObject(user3);

        oos.flush();
        oos.close();
        System.out.println("对象写入成功");

        ObjectInputStream ois=new ObjectInputStream(new FileInputStream("D:\\test.txt"));

        User obj;
      try {
            while ((obj = (User) ois.readObject())!=null) {
                System.out.println(obj);
            }
        }catch (EOFException e){
            ois.close();
        }
    }
}
